{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Decision Tree Regression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Adapted from http://scikit-learn.org/stable/auto_examples/tree/plot_tree_regression.html\n",
    "\n",
    "A 1D regression with decision tree.\n",
    "\n",
    "The decision trees is used to fit a sine curve with addition noisy observation. As a result, it learns local linear regressions approximating the sine curve.\n",
    "\n",
    "We can see that if the maximum depth of the tree (controlled by the max_depth parameter) is set too high, the decision trees learn too fine details of the training data and learn from the noise, i.e. they overfit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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wXkOj1CeZ4/HozNnzmjAgAGKiTHf0yaqMjkxMTFyuVwhO3737t35DxQmnOvw4DyHB+c5PDjP4RGq8xxMBseLjscAAMCRCHIAAIAjxc6fP3++3Y1wgtjYWKWnp+uii6KqAmgLznV4cJ7Dg/McHpzn8Ii08xxVHY8BAED0oFwFAAAciSAHAAA4EkEOAABwJIIcAADgSAQ5FnjppZc0ZMgQdenSRWPGjNGmTZvsbpLjbNy4UZMmTdKAAQNkGIZWr15td5McZ9GiRfrBD36ghIQE9e3bV1OmTNGePXvsbpYjvfzyy7ryyit9k6alpqbq73//u93NcrRFixbJMAxlZ2fb3RTHmT9/vgzDCLj179/f7mZJIshpt7feekvZ2dl6/PHHtX37dqWlpenWW29VcXGx3U1zlMrKSl111VV68cUX7W6KY3300Ud66KGHtHnzZq1fv141NTWaMGGCKisr7W6a47hcLj377LPaunWrtm7dqhtvvFGTJ0/Wzp077W6aIxUUFGjJkiW68sor7W6KY11++eUqLS313YqKiuxukiSGkLfbddddp2uuuUYvv/yy77mRI0dqypQpWrRokY0tcy7DMLRq1SpNmTLF7qY42vHjx9W3b1999NFHGj9+vN3NcbzExEQtXrxYs2fPtrspjnL27Fldc801eumll7Rw4UJdffXVysnJsbtZjjJ//nytXr1ahYWFdjelETI57VBdXa1t27ZpwoQJAc9PmDBBn376qU2tAqxRXl4uqe7ii9Bxu91avny5KisrlZqaandzHOehhx7SbbfdpptvvtnupjjaV199pQEDBmjIkCG65557tH//frubJCnKFui02okTJ+R2u9WvX7+A5/v166cjR47Y1Cqg/Twej+bNm6dx48Zp9OjRdjfHkYqKipSamqpz584pPj5eq1at0qhRo+xulqMsX75cn332mQoKCuxuiqNdd911WrZsmb73ve/p6NGjWrhwoW644Qbt3LlTvXv3trVtBDkWMAwj4LHH42n0HNCRzJkzR//5z3/08ccf290Uxxo+fLgKCwt1+vRprVy5Uvfee68++ugjAh2LlJSUKCsrS+vWrVOXLl3sbo6j3Xrrrb77V1xxhVJTUzV06FC99tprmjdvno0tI8hplz59+ig2NrZR1ubYsWONsjtAR/HLX/5Sa9as0caNG+VyuexujmPFxcVp2LBhkqSxY8eqoKBAubm5euWVV2xumTNs27ZNx44d05gxY3zPud1ubdy4US+++KKqqqoUGxtrYwudq1u3brriiiv01Vdf2d0U+uS0R1xcnMaMGaP169cHPL9+/XrdcMMNNrUKaBuPx6M5c+YoLy9PH374oYYMGWJ3k6KKx+NRVVWV3c1wjJtuuklFRUUqLCz03caOHasf/ehHKiwsJMAJoaqqKu3atUtJSUl2N4VMTnvNmzdPM2fO1NixY5WamqolS5aouLhYDz74oN1Nc5SzZ89q7969vscHDhxQYWGhEhMTNWjQIBtb5hwPPfSQ3njjDb399ttKSEjwZSh79Oihrl272tw6Z/nNb36jW2+9VcnJyTpz5oyWL1+u/Px8rV271u6mOUZCQkKj/mTdunVT79696WdmsYcffliTJk3SoEGDdOzYMS1cuFAVFRW699577W4aQU57TZ8+XWVlZXrqqadUWlqq0aNH6/3339fgwYPtbpqjbN26VRkZGb7H3jrvvffeq1dffdWmVjmLdxqE9PT0gOeXLl2qWbNmhb9BDnb06FHNnDlTpaWl6tGjh6688kqtXbtWt9xyi91NA4J28OBB/fCHP9SJEyd0ySWX6Prrr9fmzZsj4jrIPDkAAMCR6JMDAAAciSAHAAA4EkEOAABwJIIcAADgSAQ5AADAkQhyAACAIxHkAAAARyLIAdAhpKenKzs72+5mAOhACHIAOE5+fr4Mw9Dp06ftbgoAGxHkAAAARyLIARBxKisr9ZOf/ETx8fFKSkrS888/H/D666+/rrFjxyohIUH9+/fXjBkzdOzYMUnS119/7VvnrFevXjIMw7f21tq1azVu3Dj17NlTvXv31u233659+/aF9bMBCB+CHAAR55FHHtGGDRu0atUqrVu3Tvn5+dq2bZvv9erqaj399NPasWOHVq9erQMHDvgCmeTkZK1cuVKStGfPHpWWlio3N1dSXfA0b948FRQU6IMPPlBMTIzuvPNO1dbWhv0zAgg9FugEEFHOnj2r3r17a9myZZo+fbok6eTJk3K5XHrggQeUk5PTaJ+CggJde+21OnPmjOLj45Wfn6+MjAydOnVKPXv2bPa9jh8/rr59+6qoqEijR48O2WcCYA8yOQAiyr59+1RdXa3U1FTfc4mJiRo+fLjv8fbt2zV58mQNHjxYCQkJSk9PlyQVFxe3euwZM2bo0ksvVffu3TVkyBBT+wHomAhyAESU1pLLlZWVmjBhguLj4/X666+roKBAq1atklRXxmrJpEmTVFZWpj/96U/asmWLtmzZYmo/AB0TQQ6AiDJs2DB16tRJmzdv9j136tQpffnll5Kk3bt368SJE3r22WeVlpamESNG+Dode8XFxUmS3G6377mysjLt2rVLTzzxhG666SaNHDlSp06dCsMnAmAXghwAESU+Pl6zZ8/WI488og8++ECff/65Zs2apZiYuq+rQYMGKS4uTi+88IL279+vNWvW6Omnnw44xuDBg2UYht59910dP35cZ8+eVa9evdS7d28tWbJEe/fu1Ycffqh58+bZ8REBhAlBDoCIs3jxYo0fP1533HGHbr75Zo0bN05jxoyRJF1yySV69dVX9be//U2jRo3Ss88+q+eeey5g/4EDB2rBggV69NFH1a9fP82ZM0cxMTFavny5tm3bptGjR2vu3LlavHixHR8PQJgwugoAADgSmRwAAOBIBDkAAMCRCHIAAIAjEeQAAABHIsgBAACORJADAAAciSAHAAA4EkEOAABwJIIcAADgSAQ5AADAkQhyAACAIxHkAAAAR/r/rldSxr/2yegAAAAASUVORK5CYII=",
      "text/plain": [
       "PyPlot.Figure(PyObject <Figure size 640x480 with 1 Axes>)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "using ScikitLearn, Random, Statistics\n",
    "\n",
    "# Import the necessary modules and libraries\n",
    "@sk_import tree: DecisionTreeRegressor\n",
    "using PyPlot\n",
    "\n",
    "# Create a random dataset\n",
    "Random.seed!(42)\n",
    "X = sort(5 * rand(80))\n",
    "XX = reshape(X, 80, 1)\n",
    "y = sin.(X)  # for 0.5/0.6 compat. Use sin.(X)\n",
    "y[1:5:end] += 3 * (0.5 .- rand(16))\n",
    "\n",
    "# Fit regression model\n",
    "regr_1 = DecisionTreeRegressor(max_depth=2)\n",
    "regr_2 = DecisionTreeRegressor(max_depth=5)\n",
    "fit!(regr_1, XX, y)\n",
    "fit!(regr_2, XX, y)\n",
    "\n",
    "# Predict\n",
    "X_test = 0:0.01:5.0\n",
    "y_1 = predict(regr_1, reshape(X_test, length(X_test), 1))\n",
    "y_2 = predict(regr_2, reshape(X_test, length(X_test), 1))\n",
    "\n",
    "# Plot the results\n",
    "scatter(X, y, c=\"k\", label=\"data\")\n",
    "plot(X_test, y_1, c=\"g\", label=\"max_depth=2\", linewidth=2)\n",
    "plot(X_test, y_2, c=\"r\", label=\"max_depth=5\", linewidth=2)\n",
    "xlabel(\"data\")\n",
    "ylabel(\"target\")\n",
    "title(\"Decision Tree Regression\")\n",
    "legend()\n",
    "show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Julia 0.6.0 (Programa)",
   "language": "julia",
   "name": "julia-0.6-programa"
  },
  "language_info": {
   "file_extension": ".jl",
   "mimetype": "application/julia",
   "name": "julia",
   "version": "0.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
